//
// Created by LONG on 2020/11/12.
//

#ifndef O5G_SRC_O5GUE_L2_SRC_L1INTF_SRC_L1APIADPT_L1APIADPT_H_
#define O5G_SRC_O5GUE_L2_SRC_L1INTF_SRC_L1APIADPT_L1APIADPT_H_

#include "../../include/l1IntfDef.h"

#ifdef __cplusplus
extern "C"
{
#endif

enum
{
    UE_L1_API_TYPE_SCF, // small cell forum FAPI
    UE_L1_API_TYPE_INTEL, // intel L1 API
    UE_L1_API_TYPE_BUTT
};

typedef struct UeL1ApiAdpt
{
    void (*ConfigReq)(S_UeCommMsgHdr *pCommMsgHdr);
    void (*SyncReq)(S_UeCommMsgHdr *pCommMsgHdr);
    void (*TtiProc)(S_UeL2UeInst *pCellInst, uint32_t schRsltIdx);
} S_UeL1ApiAdpt;

extern S_UeL1ApiAdpt *gpUeL1ApiAdpt;

int32_t UE_L2_L1_ADPT_Init(void);
int32_t UE_L2_L1_ADPT_Final(void);

#ifdef __cplusplus
}
#endif

#endif //O5G_SRC_O5GUE_L2_SRC_L1INTF_SRC_L1APIADPT_L1APIADPT_H_
